//配置axios的全局基本路径
axios.defaults.baseURL='http://localhost:8080/'
//全局属性配置，在任意组件内可以使用this.$http获取axios对象
Vue.prototype.$http = axios


//======================axios的前置拦截器【拦截调用后端的请求】====================//
//1.axios前置拦截器：每次通过axios发送请求之前，让所有的请求都携带uToken
axios.interceptors.request.use(config=>{
    //携带token
    let token =  localStorage.getItem("token");
    if(token){
        config.headers['token']=token;
    }
    return config;
},error => {
    Promise.reject(error);
})
//======================axios的前置拦截器【处理后台登录拦截的结果】====================//

//======================axios的后置拦截器【处理后台登录拦截的结果】====================//
axios.interceptors.response.use(res => {
    //后端响应的是没有登录的信息
    if (false === res.data.success && "noLogin" === res.data.msg) {
        localStorage.removeItem("token");
        localStorage.removeItem("logininfo");
        location.href = "login.html"
    }else if (false === res.data.success && "timeout" === res.data.msg) {
        alert("登录超时，请重新登录");
        //删除localStorage的token和logininfo
        localStorage.removeItem("token");
        localStorage.removeItem("logininfo");
        //跳转到登录页面
        location.href="login.html";
    }
    return res;
},error => {
    Promise.reject(error)
})
//======================axios的后置拦截器【处理后台登录拦截的结果】====================//


//======================拦截静态资源====================//
let url = location.href
if(url.indexOf("login.html")==-1 && url.indexOf("register.html")==-1
    && url.indexOf("callback.html")==-1 && url.indexOf("binder.html")==-1){
    let info = localStorage.getItem("logininfo");
    if(!info){//如果访问的不是登录页面和注册页面，并且info没有值【没有登录或过期】
        location.href = "/login.html";
    }
}

//=====================将地址栏的url后的参数解析成一个json对象====================//
function parseUrlParams2Obj(url){//xxx.html?code=111&key=2222&value=3333
    //先定义一个对象来接收遍历的参数
    let obj = {}
    //先截取出来
    let params = url.substring(url.indexOf("?")+ 1)//code=111&key=2222&value=3333
    //分割
    let paramsArr = params.split("&")
    //遍历
    for(let i = 0;i<paramsArr.length;i++){
        //拿到每一个参数
        let param = paramsArr[i];
        //分割
        let paramArr = param.split("=");
        //相当于   对象[属性名] = [属性值]
        obj[paramArr[0]] = paramArr[1];
    }
    return obj
}